#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/6/8 18:01
# @USER    : Shengji He
# @File    : ImplementStr.py
# @Software: PyCharm
# @Version  : Python-
# @TASK:


class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        """
        Implement strStr().

        Return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

        Example 1:
            Input: haystack = "hello", needle = "ll"

            Output: 2

        Example 2:
            Input: haystack = "aaaaa", needle = "bba"

            Output: -1

        Clarification:

            What should we return when needle is an empty string? This is a great question to ask during an interview.

            For the purpose of this problem, we will return 0 when needle is an empty string. This is consistent to C's
            strstr() and Java's indexOf().

        :param haystack: str
        :param needle: str
        :return: int
        """
        if len(needle) == 0:
            return 0
        for i in range(0, len(haystack) - len(needle) + 1):
            if haystack[i: len(needle) + i] == needle:
                return i
        return -1


if __name__ == '__main__':
    haystack = "aaaaa"
    needle = "bba"
    S = Solution()
    print(S.strStr(haystack, needle))
    print('done')
